let arrObj = [
  { name: '小红', id: 1 },
  { name: '小橙', id: 1 },
  { name: '小黄', id: 4 },
  { name: '小绿', id: 3 },
  { name: '小青', id: 1 },
  { name: '小蓝', id: 4 },
]
// 方法一：
let map1 = new Map()
for (let item of arrObj) {
  if (!map1.has(item.id)) {
    map1.set(item.id, item)
  }
}
arr = [...map1.values()]
console.log(arr)

// 方法二： (代码较为简洁)
let arrObj2 = [
  { name: '小红', id: 1 },
  { name: '小橙', id: 1 },
  { name: '小黄', id: 4 },
  { name: '小绿', id: 3 },
  { name: '小青', id: 1 },
  { name: '小蓝', id: 4 },
]
const map2 = new Map()
const newArr = arrObj2.filter((v) => !map2.has(v.id) && map2.set(v.id, v))
// const newArr = [...new Map(arrObj.map((v) => [v.id, item])).values()];
console.log(newArr)





let arrObj3 = [
  { name: "小红", id: 1 },
  { name: "小橙", id: 1 },
  { name: "小黄", id: 4 },
  { name: "小绿", id: 3 },
  { name: "小青", id: 1 },
  { name: "小蓝", id: 4 }
];
function fn1(tempArr) {
  for (let i = 0; i < tempArr.length; i++) {
      for (let j = i + 1; j < tempArr.length; j++) {
          if (tempArr[i].id == tempArr[j].id) {
              tempArr.splice(j, 1);
              j--;
          };
      };
  };
  return tempArr;
};
console.log(fn1(arrObj3));



let arrObj4 = [
  { name: "小红", id: 1 },
  { name: "小橙", id: 1 },
  { name: "小黄", id: 4 },
  { name: "小绿", id: 3 },
  { name: "小青", id: 1 },
  { name: "小蓝", id: 4 }
];
function fn2(tempArr) {
  let newArr = [];
  for (let i = 0; i < tempArr.length; i++) {
      if (newArr.indexOf(tempArr[i].id) == -1) {
          newArr.push(tempArr[i].id);
      } else {
          tempArr.splice(i, 1);
          i--;
      };
  };
  return tempArr;
};
console.log(fn2(arrObj4));


let arrObj5 = [
  { name: "小红", id: 1 },
  { name: "小橙", id: 1 },
  { name: "小黄", id: 4 },
  { name: "小绿", id: 3 },
  { name: "小青", id: 1 },
  { name: "小蓝", id: 4 }
];
function fn3(tempArr) {
  let result = [];
  let obj = {};
  for (let i = 0; i < tempArr.length; i++) {
      if (!obj[tempArr[i].id]) {
          result.push(tempArr[i]);
          obj[tempArr[i].id] = true;
      };
  };
  return result;
};
console.log(fn3(arrObj5));